package cn.com.api.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import cn.com.api.entity.ApiShop;
import cn.com.api.entity.ApiShopTodayStats;
import cn.com.util.*;

//DAO
public interface ApiShopsMapper {

	// 登录
	public ApiShop login(@Param("uname") String uname, @Param("pwd") String pwd);

	// 根据id查询商品详情
	public List<ApiShop> getShopsById(@Param("sid") Integer sid);

	// 我收藏的店铺
	public List<ApiShop> searchMyShops(@Param("u_id") String u_id);

	// 我收藏的店铺
	public List<ApiShop> searchMyShopsPage(@Param("u_id") String u_id, @Param("page") PageInfo page);

	// 根据类型获取商店列表
	public List<ApiShop> searchShopsByTypeListPage(@Param("cType") Integer cType, @Param("c_city_id") Integer c_city_id,
			@Param("page") PageInfo page);

	// 查询已审核的店铺
	public List<ApiShop> searchShopsByEnable(Integer cEnable);

	// 根据城市id查询已审核的店铺
	public List<ApiShop> searchShopsByEnableAndCity(@Param("cEnable") String cEnable, @Param("cityid") String cityid);

	// 根据cmobi查询
	public List<ApiShop> searchShopsByCmobi(@Param("cmobi") String cmobi);

	// 查询所有店铺
	public List<ApiShop> findShops();

	public List<ApiShop> findShopsAll();

	// 根据cid查询商铺
	public ApiShop findShopByCid(@Param("cId") String cId);

	// 根据城市查询直营店
	public ApiShop searchShopsZiYingByCityId(@Param("c_city_id") String city_id);

	public Map<String, Object> findShopByShopId(@Param("shopid") String shopid);

	// 根据c_mobi查询商铺
	public ApiShop findShopByCmobi(@Param("c_mobi") String c_mobi);

	// 根据id查看
	public ApiShop findT_shopsById(@Param("c_id") Integer c_id);

	// 添加
	public int insertT_shops(ApiShop t_shops);

	// 修改
	public int updateT_shops(ApiShop t_shops);

	// 条件查询
	public List<ApiShop> searConditionListPage(@Param("map") Map<String, Object> cond,
			@Param("page") PageInfo pageInfo);

	// 修改商家密码
	public int modifyPass_shops(ApiShop t_shops);

	// 删除
	public int deleteT_shops(@Param("c_id") Integer c_id);

	// 根据条件查询商铺
	public List<ApiShop> searchShopByConditionListPage(@Param("map") Map<String, Object> map,
			@Param("page") PageInfo page);

	// 获取商户当日有效订单和订单总金额
	public ApiShopTodayStats getShopAccountToday(Integer shop_id);

	// 获取商户某日有效订单和订单总金额
	public ApiShopTodayStats getShopAccountDay(@Param("shop_id") Integer shop_id, @Param("day") String day);

	// 更新电话
	public boolean updateTel(@Param("tel") String tel, @Param("id") String id);

	// 更新营业状态
	public boolean updateIsOpen(@Param("open") String open, @Param("shopid") String shopid);

	// 更新商家可提现金额和预支付金额
	public boolean updateCashPre(@Param("cmoney") Double cmoney, @Param("payment") Double payment,
			@Param("id") Integer id);

	/**
	 * 搜索不同状态下的店铺
	 * 
	 * @param conditions
	 * @return
	 */
	public List<ApiShop> searchShops(Map<String, Object> conditions);

	// 根据订单号查询店铺，city_id 经纬度，用来查找配送员
	public ApiShop getShopByOrderId(@Param("orderId") String orderId);

	// 搜索店铺
	public List<ApiShop> searchShopsByShopNameListPage(@Param("name") String name, @Param("city_id") String city_id,
			@Param("page") PageInfo page);

	public Integer searByName(@Param("name") String name);

	// 生活服务--附近门店
	public List<ApiShop> searchNearbyShopsListPage(@Param("map") Map<String, Object> map, @Param("page") PageInfo page);

	public boolean updatePreMoney(@Param("money") String money, @Param("id") String id);

	public List<Map<String, Object>> searShopCad(@Param("sname") String sname);

	public List<Map<String, Object>> searShopOrderDel(@Param("shopid") String shopid, @Param("rid") String rid,
			@Param("time") String time, @Param("stime") String stime, @Param("etime") String etime);

	// 更新是否登录标识
	public void updateLoginFlagBySid(@Param("shop_id") String shop_id, @Param("is_login") Integer is_login);

	/**
	 * 更新商品信息
	 * 
	 * @param newShop
	 * @return
	 */
	public int updatShopInfo(ApiShop newShop);

	// 根据city_id 自营标识 查出自营店
	public List<ApiShop> findZYShopByCityId(Integer city_id);

	// 我收藏的店铺
	public List<ApiShop> findT_logs4ShopsByUserId(@Param("u_id") String u_id, @Param("city_id") String city_id);

	// 所有商铺的id
	public List<Map<String, Object>> searAllId();

	public List<Map<String, Object>> getshopBillsListPage(@Param("shop_id") Integer shop_id,
			@Param("page") PageInfo pageInfo);

}
